/* 
 * Gneat (http://gneat.org)
 *
 * (C) Copyright 2011 and beyond - Claudio Stella, all rights reserved.
 *
 * This file is part of Gneat.
 *
 * Gneat is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License (LGPL)
 * as published by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Gneat is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * and the GNU General Public License, for completeness, along with Gneat.  
 * If not, see <http://www.gnu.org/licenses/>.
 */
package org.neatshell.gneat.client.guice;

import org.neatshell.gneat.client.GneatCore;
import org.neatshell.gneat.client.HtmlInjector;
import org.neatshell.gneat.client.presenter.html.APresenter;
import org.neatshell.gneat.client.presenter.html.BodyPresenter;
import org.neatshell.gneat.client.presenter.html.DivPresenter;
import org.neatshell.gneat.client.presenter.html.FormPresenter;
import org.neatshell.gneat.client.presenter.html.HeadPresenter;
import org.neatshell.gneat.client.presenter.html.HtmlPresenter;
import org.neatshell.gneat.client.presenter.html.IFramePresenter;
import org.neatshell.gneat.client.presenter.html.ImgPresenter;
import org.neatshell.gneat.client.presenter.html.RootBodyPresenter;
import org.neatshell.gneat.client.presenter.html.RootHeadPresenter;
import org.neatshell.gneat.client.presenter.html.RootHtmlPresenter;
import org.neatshell.gneat.client.presenter.html.SpanPresenter;
import org.neatshell.gneat.client.presenter.html.TablePresenter;
import org.neatshell.gneat.client.presenter.html.form.FieldSetPresenter;
import org.neatshell.gneat.client.presenter.html.form.LabelPresenter;
import org.neatshell.gneat.client.presenter.html.form.LegendPresenter;
import org.neatshell.gneat.client.presenter.html.form.SelectPresenter;
import org.neatshell.gneat.client.presenter.html.form.TextareaPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.PushButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.ResetButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.button.SubmitButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputButtonPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputCheckboxPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputFilePresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputHiddenPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputImagePresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputPasswordPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputRadioPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputResetPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputSubmitPresenter;
import org.neatshell.gneat.client.presenter.html.form.input.InputTextPresenter;
import org.neatshell.gneat.client.presenter.html.form.select.OptgroupPresenter;
import org.neatshell.gneat.client.presenter.html.form.select.OptionPresenter;
import org.neatshell.gneat.client.presenter.html.list.LiPresenter;
import org.neatshell.gneat.client.presenter.html.list.UlPresenter;
import org.neatshell.gneat.client.presenter.html.table.CaptionPresenter;
import org.neatshell.gneat.client.presenter.html.table.ColPresenter;
import org.neatshell.gneat.client.presenter.html.table.ColgroupPresenter;
import org.neatshell.gneat.client.presenter.html.table.TbodyPresenter;
import org.neatshell.gneat.client.presenter.html.table.TdPresenter;
import org.neatshell.gneat.client.presenter.html.table.TfootPresenter;
import org.neatshell.gneat.client.presenter.html.table.ThPresenter;
import org.neatshell.gneat.client.presenter.html.table.TheadPresenter;
import org.neatshell.gneat.client.presenter.html.table.TrPresenter;

import com.google.inject.Guice;
import com.google.inject.Injector;

public class HtmlDeadInjector implements HtmlInjector {
	Injector injector = null;

	public HtmlDeadInjector() {
		GneatCore.setCoreInjector(new CoreDeadInjector());
		injector = Guice.createInjector(new HtmlDeadClientModule());
	}
	
	@Override
	public APresenter.IView getAView() {
		return injector.getInstance(APresenter.IView.class);
	}

	@Override
	public RootBodyPresenter.IView getRootBodyView() {
		return injector.getInstance(RootBodyPresenter.IView.class);
	}

	@Override
	public RootHeadPresenter.IView getRootHeadView() {
		return injector.getInstance(RootHeadPresenter.IView.class);
	}

	@Override
	public RootHtmlPresenter.IView getRootHtmlView() {
		return injector.getInstance(RootHtmlPresenter.IView.class);
	}

	@Override
	public BodyPresenter.IView getBodyView() {
		return injector.getInstance(BodyPresenter.IView.class);
	}

	@Override
	public CaptionPresenter.IView getCaptionView() {
		return injector.getInstance(CaptionPresenter.IView.class);
	}

	@Override
	public ColgroupPresenter.IView getColGroupView() {
		return injector.getInstance(ColgroupPresenter.IView.class);
	}

	@Override
	public ColPresenter.IView getColView() {
		return injector.getInstance(ColPresenter.IView.class);
	}

	@Override
	public DivPresenter.IView getDivView() {
		return injector.getInstance(DivPresenter.IView.class);
	}

	@Override
	public FieldSetPresenter.IView getFieldSetView() {
		return injector.getInstance(FieldSetPresenter.IView.class);
	}

	@Override
	public FormPresenter.IView getFormView() {
		return injector.getInstance(FormPresenter.IView.class);
	}

	@Override
	public HeadPresenter.IView getHeadView() {
		return injector.getInstance(HeadPresenter.IView.class);
	}

	@Override
	public HtmlPresenter.IView getHtmlView() {
		return injector.getInstance(HtmlPresenter.IView.class);
	}

	@Override
	public IFramePresenter.IView getIFrameView() {
		return injector.getInstance(IFramePresenter.IView.class);
	}

	@Override
	public ImgPresenter.IView getImgView() {
		return injector.getInstance(ImgPresenter.IView.class);
	}

	@Override
	public InputButtonPresenter.IView getInputButtonView() {
		return injector.getInstance(InputButtonPresenter.IView.class);
	}

	@Override
	public InputCheckboxPresenter.IView getInputCheckBoxView() {
		return injector.getInstance(InputCheckboxPresenter.IView.class);
	}

	@Override
	public InputFilePresenter.IView getInputFileView() {
		return injector.getInstance(InputFilePresenter.IView.class);
	}

	@Override
	public InputHiddenPresenter.IView getInputHiddenView() {
		return injector.getInstance(InputHiddenPresenter.IView.class);
	}

	@Override
	public InputImagePresenter.IView getInputImageView() {
		return injector.getInstance(InputImagePresenter.IView.class);
	}

	@Override
	public InputPasswordPresenter.IView getInputPasswordView() {
		return injector.getInstance(InputPasswordPresenter.IView.class);
	}

	@Override
	public InputRadioPresenter.IView getInputRadioView() {
		return injector.getInstance(InputRadioPresenter.IView.class);
	}

	@Override
	public InputResetPresenter.IView getInputResetView() {
		return injector.getInstance(InputResetPresenter.IView.class);
	}

	@Override
	public InputSubmitPresenter.IView getInputSubmitView() {
		return injector.getInstance(InputSubmitPresenter.IView.class);
	}

	@Override
	public InputTextPresenter.IView getInputTextView() {
		return injector.getInstance(InputTextPresenter.IView.class);
	}

	@Override
	public LabelPresenter.IView getLabelView() {
		return injector.getInstance(LabelPresenter.IView.class);
	}

	@Override
	public LegendPresenter.IView getLegendView() {
		return injector.getInstance(LegendPresenter.IView.class);
	}

	@Override
	public LiPresenter.IView getLiView() {
		return injector.getInstance(LiPresenter.IView.class);
	}

	@Override
	public OptgroupPresenter.IView getOptGroupView() {
		return injector.getInstance(OptgroupPresenter.IView.class);
	}

	@Override
	public OptionPresenter.IView getOptionView() {
		return injector.getInstance(OptionPresenter.IView.class);
	}

	@Override
	public PushButtonPresenter.IView getPushButtonView() {
		return injector.getInstance(PushButtonPresenter.IView.class);
	}

	@Override
	public ResetButtonPresenter.IView getResetButtonView() {
		return injector.getInstance(ResetButtonPresenter.IView.class);
	}

	@Override
	public SelectPresenter.IView getSelectView() {
		return injector.getInstance(SelectPresenter.IView.class);
	}

	@Override
	public org.neatshell.gneat.client.presenter.html.SpanPresenter.IView getSpanView() {
		return injector.getInstance(SpanPresenter.IView.class);
	}

	@Override
	public SubmitButtonPresenter.IView getSubmitButtonView() {
		return injector.getInstance(SubmitButtonPresenter.IView.class);
	}

	@Override
	public TablePresenter.IView getTableView() {
		return injector.getInstance(TablePresenter.IView.class);
	}

	@Override
	public TbodyPresenter.IView getTBodyView() {
		return injector.getInstance(TbodyPresenter.IView.class);
	}

	@Override
	public TdPresenter.IView getTdView() {
		return injector.getInstance(TdPresenter.IView.class);
	}

	@Override
	public TextareaPresenter.IView getTextAreaView() {
		return injector.getInstance(TextareaPresenter.IView.class);
	}

	@Override
	public TfootPresenter.IView getTFootView() {
		return injector.getInstance(TfootPresenter.IView.class);
	}

	@Override
	public TheadPresenter.IView getTHeadView() {
		return injector.getInstance(TheadPresenter.IView.class);
	}

	@Override
	public ThPresenter.IView getThView() {
		return injector.getInstance(ThPresenter.IView.class);
	}

	@Override
	public TrPresenter.IView getTrView() {
		return injector.getInstance(TrPresenter.IView.class);
	}

	@Override
	public UlPresenter.IView getUlView() {
		return injector.getInstance(UlPresenter.IView.class);
	}
}